package web.stu.util;

import org.springframework.util.DigestUtils;

public class PasswordUtil {

    /**
     * 加密密码
     *
     * @param password 原始密码
     * @param salt     盐值(可选)
     * @return 加密后的密码
     */
    public static String encrypt(String password, String salt) {
        if (salt != null && !salt.isEmpty()) {
            password = password + salt;
        }
        return DigestUtils.md5DigestAsHex(password.getBytes());
    }

    /**
     * 校验密码
     *
     * @param inputPassword     输入的密码
     * @param encryptedPassword 加密后的密码
     * @param salt              盐值(可选)
     * @return 是否匹配
     */
    public static boolean matches(String inputPassword, String encryptedPassword, String salt) {
        String encryptedInput = encrypt(inputPassword, salt);
        return encryptedInput.equals(encryptedPassword);
    }

    /**
     * 使用MD5加密密码
     *
     * @param password 原始密码
     * @return 加密后的密码
     */
    public static String encrypt(String password) {
        return DigestUtils.md5DigestAsHex((password).getBytes());
    }

    /**
     * MD5相同算法 校验密码
     *
     * @param inputPassword     输入的密码
     * @param encryptedPassword 加密后的密码
     * @return 是否匹配
     */
    public static boolean matches(String inputPassword, String encryptedPassword) {
        return encrypt(inputPassword).equals(encryptedPassword);
    }

}